#pragma once
#include "pch.h"
#include "Common.h"
namespace AutomatedSurfaceReconstruction
{

	class CSimplifyMeshPipe :public hiveSystem::CPipe<std::pair<std::pair<std::string, CGALMeshType>, CGALPointSetType>, std::pair<std::pair<std::string, CGALMeshType>, CGALPointSetType>>
	{
	private:
		void __registerOwnMemberFuncAsDataProcessFuncV() override { registerDataProcessFunc(std::bind(&CSimplifyMeshPipe::__processSingleData, this, std::placeholders::_1, std::placeholders::_2)); }
		void __processSingleData(const std::pair<std::pair<std::string, CGALMeshType>, CGALPointSetType>& vInput, std::pair<std::pair<std::string, CGALMeshType>, CGALPointSetType>& voOutput) { voOutput = vInput; }
	};

	class CSaveMeshPipe :public hiveSystem::CPipe<std::pair<std::string, CGALMeshType>, std::pair<std::string, CGALMeshType>>
	{
	private:
		void __registerOwnMemberFuncAsDataProcessFuncV() override { registerDataProcessFunc(std::bind(&CSaveMeshPipe::__processSingleData, this, std::placeholders::_1, std::placeholders::_2)); }
		void __processSingleData(const std::pair<std::string, CGALMeshType>& vInput, std::pair<std::string, CGALMeshType>& voOutput) { voOutput = vInput; }
	};
}